package com.zxx.ssm.dao;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class StudentInchargeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public StudentInchargeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andStudentidIsNull() {
            addCriterion("studentid is null");
            return (Criteria) this;
        }

        public Criteria andStudentidIsNotNull() {
            addCriterion("studentid is not null");
            return (Criteria) this;
        }

        public Criteria andStudentidEqualTo(Integer value) {
            addCriterion("studentid =", value, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidNotEqualTo(Integer value) {
            addCriterion("studentid <>", value, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidGreaterThan(Integer value) {
            addCriterion("studentid >", value, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidGreaterThanOrEqualTo(Integer value) {
            addCriterion("studentid >=", value, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidLessThan(Integer value) {
            addCriterion("studentid <", value, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidLessThanOrEqualTo(Integer value) {
            addCriterion("studentid <=", value, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidIn(List<Integer> values) {
            addCriterion("studentid in", values, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidNotIn(List<Integer> values) {
            addCriterion("studentid not in", values, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidBetween(Integer value1, Integer value2) {
            addCriterion("studentid between", value1, value2, "studentid");
            return (Criteria) this;
        }

        public Criteria andStudentidNotBetween(Integer value1, Integer value2) {
            addCriterion("studentid not between", value1, value2, "studentid");
            return (Criteria) this;
        }

        public Criteria andInchargecountIsNull() {
            addCriterion("inchargecount is null");
            return (Criteria) this;
        }

        public Criteria andInchargecountIsNotNull() {
            addCriterion("inchargecount is not null");
            return (Criteria) this;
        }

        public Criteria andInchargecountEqualTo(Float value) {
            addCriterion("inchargecount =", value, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountNotEqualTo(Float value) {
            addCriterion("inchargecount <>", value, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountGreaterThan(Float value) {
            addCriterion("inchargecount >", value, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountGreaterThanOrEqualTo(Float value) {
            addCriterion("inchargecount >=", value, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountLessThan(Float value) {
            addCriterion("inchargecount <", value, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountLessThanOrEqualTo(Float value) {
            addCriterion("inchargecount <=", value, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountIn(List<Float> values) {
            addCriterion("inchargecount in", values, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountNotIn(List<Float> values) {
            addCriterion("inchargecount not in", values, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountBetween(Float value1, Float value2) {
            addCriterion("inchargecount between", value1, value2, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargecountNotBetween(Float value1, Float value2) {
            addCriterion("inchargecount not between", value1, value2, "inchargecount");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeIsNull() {
            addCriterion("incharge_time is null");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeIsNotNull() {
            addCriterion("incharge_time is not null");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeEqualTo(Date value) {
            addCriterion("incharge_time =", value, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeNotEqualTo(Date value) {
            addCriterion("incharge_time <>", value, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeGreaterThan(Date value) {
            addCriterion("incharge_time >", value, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("incharge_time >=", value, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeLessThan(Date value) {
            addCriterion("incharge_time <", value, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeLessThanOrEqualTo(Date value) {
            addCriterion("incharge_time <=", value, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeIn(List<Date> values) {
            addCriterion("incharge_time in", values, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeNotIn(List<Date> values) {
            addCriterion("incharge_time not in", values, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeBetween(Date value1, Date value2) {
            addCriterion("incharge_time between", value1, value2, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andInchargeTimeNotBetween(Date value1, Date value2) {
            addCriterion("incharge_time not between", value1, value2, "inchargeTime");
            return (Criteria) this;
        }

        public Criteria andFromtimepointIsNull() {
            addCriterion("fromtimepoint is null");
            return (Criteria) this;
        }

        public Criteria andFromtimepointIsNotNull() {
            addCriterion("fromtimepoint is not null");
            return (Criteria) this;
        }

        public Criteria andFromtimepointEqualTo(Date value) {
            addCriterion("fromtimepoint =", value, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointNotEqualTo(Date value) {
            addCriterion("fromtimepoint <>", value, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointGreaterThan(Date value) {
            addCriterion("fromtimepoint >", value, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointGreaterThanOrEqualTo(Date value) {
            addCriterion("fromtimepoint >=", value, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointLessThan(Date value) {
            addCriterion("fromtimepoint <", value, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointLessThanOrEqualTo(Date value) {
            addCriterion("fromtimepoint <=", value, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointIn(List<Date> values) {
            addCriterion("fromtimepoint in", values, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointNotIn(List<Date> values) {
            addCriterion("fromtimepoint not in", values, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointBetween(Date value1, Date value2) {
            addCriterion("fromtimepoint between", value1, value2, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andFromtimepointNotBetween(Date value1, Date value2) {
            addCriterion("fromtimepoint not between", value1, value2, "fromtimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointIsNull() {
            addCriterion("totimepoint is null");
            return (Criteria) this;
        }

        public Criteria andTotimepointIsNotNull() {
            addCriterion("totimepoint is not null");
            return (Criteria) this;
        }

        public Criteria andTotimepointEqualTo(Date value) {
            addCriterion("totimepoint =", value, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointNotEqualTo(Date value) {
            addCriterion("totimepoint <>", value, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointGreaterThan(Date value) {
            addCriterion("totimepoint >", value, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointGreaterThanOrEqualTo(Date value) {
            addCriterion("totimepoint >=", value, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointLessThan(Date value) {
            addCriterion("totimepoint <", value, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointLessThanOrEqualTo(Date value) {
            addCriterion("totimepoint <=", value, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointIn(List<Date> values) {
            addCriterion("totimepoint in", values, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointNotIn(List<Date> values) {
            addCriterion("totimepoint not in", values, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointBetween(Date value1, Date value2) {
            addCriterion("totimepoint between", value1, value2, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andTotimepointNotBetween(Date value1, Date value2) {
            addCriterion("totimepoint not between", value1, value2, "totimepoint");
            return (Criteria) this;
        }

        public Criteria andThroughIsNull() {
            addCriterion("through is null");
            return (Criteria) this;
        }

        public Criteria andThroughIsNotNull() {
            addCriterion("through is not null");
            return (Criteria) this;
        }

        public Criteria andThroughEqualTo(String value) {
            addCriterion("through =", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughNotEqualTo(String value) {
            addCriterion("through <>", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughGreaterThan(String value) {
            addCriterion("through >", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughGreaterThanOrEqualTo(String value) {
            addCriterion("through >=", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughLessThan(String value) {
            addCriterion("through <", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughLessThanOrEqualTo(String value) {
            addCriterion("through <=", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughLike(String value) {
            addCriterion("through like", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughNotLike(String value) {
            addCriterion("through not like", value, "through");
            return (Criteria) this;
        }

        public Criteria andThroughIn(List<String> values) {
            addCriterion("through in", values, "through");
            return (Criteria) this;
        }

        public Criteria andThroughNotIn(List<String> values) {
            addCriterion("through not in", values, "through");
            return (Criteria) this;
        }

        public Criteria andThroughBetween(String value1, String value2) {
            addCriterion("through between", value1, value2, "through");
            return (Criteria) this;
        }

        public Criteria andThroughNotBetween(String value1, String value2) {
            addCriterion("through not between", value1, value2, "through");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}